/**
 * @file            文件名:                WinyunqKeyboard.h
 * @brief           函数简介                                      
 *  @details        【不能简单描述则必选】如果不能一句话描述函数，请使用Details进行详细描述
 * 
 * @author          Winyunq             创建
 * @version         版本:                 1.0.0
 * @date            2022-12-16          创建
 * 
 * Copyright (c) 2022  Winyunq科技公司
 */

#ifndef __WinyunqKeyboard_H
#define __WinyunqKeyboard_H
#ifdef __cplusplus
extern "C" {
#endif
typedef char boolean;
typedef unsigned char uint8;
typedef unsigned long long uint64;


#ifndef  __WinyunqKeyboard_C
/// 若此时不在WinyunqKeyboard.c内，则以extern形式访问KeyboardConfigure
#define Extern extern

#else

#define Extern 

#endif

Extern union 
{ 
  struct 
  { 
    boolean LeftCtrl : 1;  ///< 左边ctrl键
    boolean LeftShift : 1;  ///< 左边shift键
    boolean LeftAlt : 1; ///< 左边Alt键
    boolean LeftGUI  : 1; ///< 左边GUI键 (如Windows/Super key.)
    boolean RightCtrl : 1;  ///< 右边ctrl键
    boolean RightShift : 1;  ///< 右边shift键
    boolean RightAlt : 1; ///< 右边Alt键
    boolean RightGUI  : 1; ///< 右边GUI键 (如Windows/Super key.)
    uint8 NullVaule;
    uint8 ReportKey[6];  ///< 单个按键所上报的按键 
  } details; ///< 以具体变量成员访问
  uint8 buffer[8]; ///< 以缓冲区形式访问
  uint64 data;
} KeyboardData;///< 设备配置文件 

Extern uint8 ReleaseKeyTouch[8]={0};

extern void StringReport();
extern void SignleKeyReport();
extern void UTF8KeyReport();
extern void UTF8StringReport();

#ifdef __cplusplus
}

#endif

#endif
